home *** CD-ROM | disk | FTP | other *** search
/ Ultra Gameplayers 101 / Ultra Game Players Magazine, No. 101 - September 1997 (Imagine Publishing, Inc.)(1997).iso / pc / new_ugp.dxr / 00275_Audio Controller Class.ls < prev    next >
Encoding:
Text File  |  1997-07-10  |  1.5 KB  |  71 lines

  1. property audioMembers, suspended
  2.  
  3. on new me, parameterList
  4.   set audioMembers to [0, 0, 0, 0]
  5.   set suspended to 0
  6.   return me
  7. end
  8.  
  9. on PlayAudio me, channel, newMember
  10.   if (newMember <= 0) or (channel <= 0) then
  11.     put "bad values"
  12.   else
  13.     set oldMember to getAt(audioMembers, channel)
  14.     if not suspended then
  15.       puppetSound(channel, newMember)
  16.       WaitTicks(15)
  17.     end if
  18.     setAt(audioMembers, channel, newMember)
  19.   end if
  20. end
  21.  
  22. on StopAudio me, channel, audioMember
  23.   set currAudio to getAt(audioMembers, channel)
  24.   if voidp(audioMember) or (audioMember = 0) or (audioMember = currAudio) then
  25.     if voidp(channel) or (channel = 0) then
  26.       KillAudio(me)
  27.     else
  28.       sound stop channel
  29.       setAt(audioMembers, channel, 0)
  30.     end if
  31.   end if
  32. end
  33.  
  34. on SuspendAudio me
  35.   if suspended = 0 then
  36.     put "Suspending Audio" && audioMembers
  37.     repeat with channel = 1 to 4
  38.       if soundBusy(channel) then
  39.         put "Suspending channel" && channel
  40.         sound stop channel
  41.         next repeat
  42.       end if
  43.       setAt(audioMembers, channel, 0)
  44.     end repeat
  45.     set suspended to 1
  46.   end if
  47. end
  48.  
  49. on ResumeAudio me
  50.   setAt(audioMembers, 2, 0)
  51.   if suspended = 1 then
  52.     put "Resuming normal audio play:" && audioMembers
  53.     repeat with channel = 1 to 4
  54.       puppetSound(channel, getAt(audioMembers, channel))
  55.     end repeat
  56.     set suspended to 0
  57.   end if
  58. end
  59.  
  60. on KillAudio me
  61.   repeat with channel = 1 to 4
  62.     sound stop channel
  63.   end repeat
  64.   set audioMembers to [0, 0, 0, 0]
  65. end
  66.  
  67. on dispose me
  68.   KillAudio()
  69.   set audioMembers to 0
  70. end
  71.